Wireless, radio frequency (rf) receivers are well known. Such receivers are constructed to receive and demodulate information signals modulated onto an rf carrier wave. Modulation methods include such alternatives as frequency shift keying (FSK), quadrature phase shift modulation (QPSK), or quadrature amplitude modulation (QAM).
Within a receiver, the information signal is recovered by mixing the received signal to a zero-rf state and comparing the remaining signal against known standards. In a FSK system 1s and 0s may be detected by the presence or absence of frequency shifts detected at the zero-rf state. In QPSK or QAM systems the received signal is mixed to a zero-rf state and the remaining signal compared to constellations of known symbols. The known symbols are multidimensional, using amplitude and phase as encoding parameters. The use of multidimensional symbols allows QPSK and QAM systems to transmit multiple bits within each symbol, considerably increasing data throughput within such communication systems.
A key element of decoding symbols lies in being able to sense the timing of transmitted symbols. One method of acquiring proper timing in a receiver is provided by transmitting known pilot symbols at regular intervals. The transmission of known pilots not only provides an indication of the start and end of data frames but can also be used to determine a complex channel vector, .PSI., operating on the known pilot, P, to produce a received vector, R.
The complex channel vector is calculated by dividing the received vector, R, by the known transmitted pilot vector, P. The quotient is a complex value that may then be used to provide a better estimate of symbols received between pilots by dividing the received symbols by the complex channel vector.
As a further aid to reliability in decoding information, convolutional coding may be used to improve the noise resistance of a communicated signal. A convolutional coder with constraint length K=3 and code rate k/n=1/2 may be used to encode a signal with a high degree of reliability over a channel with convolutional coding.
Decoding of a channel using convolutional coding is typically based upon maximum likelihood (Viterbi) decoding (see Digital Communications Fundamentals and Applications, by Bernard Sklar, Prentice Hall, 1988, pgs. 315-374). Under Viterbi decoding, state transitions (t.sub.1 t.sub.n) of a convolutionally coded signal are plotted in a trellis diagram in a series of possible paths defining a received signal at a time, t.sub.i. Under the Viterbi algorithm a metric is calculated defining a measure of similarity, or distance, between a received signal at time t.sub.i, and all the trellis paths entering each state at time t.sub.i. The metric is then used to eliminate those trellis paths that could not possibly be candidate paths. The best metric path (most likely answer) under the Viterbi algorithm is the path with the lowest cumulative metric.
In general, in a system where R={r.sub.1 . . . r.sub.L } is a received signal vector, .PSI. is a constant channel estimate, X={x.sub.1 . . . x.sub.L } is a transmitted signal vector, N is a noise vector, and .sigma..sub.n.sup.2 is a noise variance, a log-likelihood function of the received vector R, given that X is transmitted, has the form as follows: ##EQU1## Such a function can be used to describe the likelihood of reception of the vector, R, for a binary communications channel with time-varying channel gain and additive white Gaussian noise and zero mean signal level.
While the Viterbi algorithm has worked well, the success of the Viterbi algorithm is based upon a white Gaussian noise source. In slow frequency hopping, code division multiple access (SFH-CDMA) communication systems noise, due to interference, may not be Gaussian where interfering communication units transmit in synchronism. A need exists for a method of extending maximum likelihood decoding to SFH-CDMA systems.